Python远程删除Ftp目录文件

您所在的位置:网站首页 sftp 删除文件夹 Python远程删除Ftp目录文件

Python远程删除Ftp目录文件

2024-01-31 17:40| 来源: 网络整理| 查看: 265

使用ftplib包三步完成删除ftp上指定目录空间

from ftplib import FTP

1.链接ftp服务器

''' host :ip地址 username:用户名 password:密码 port:端口号 ''' def ftpConnect(host, username, password, port): ftpServer = FtpCon() ftpServer.encoding = "utf-8" ftpServer.connect(host, port) ftpServer.login(username, password) return ftpServer

2.获取目录信息

根据需要,对目录按照修改日期进行了排序,过滤之后返回有效的目录名

def getdirs(self, dirpath=None): """ 获取当前路径或者指定路径下的文件、目录 :param args: :return: 可不可按照名称 日期排序获取列表,默认是名称排序 """ if dirpath != None: self.cwd(dirpath) dir_list = [] self.dir('.', dir_list.append) dirDateList = [] for l in dir_list: dirDic = {} try: dl = l.split(' ') # dicd = {} # dicd['name'] = dl[-1] # dicd['date'] = dl[-1] # 判断是否为文件,其余不满足条件的不在删除之列,直接过滤 if dl[0].startswith('d') and is_number(dl[-2]): date = dl[-2] + '' + FtpCon.getDateByEg(self, dl[-5]) dirDic['dir'] = dl[-1] dirDic['date'] = date dirDateList.append(dirDic) else: pass # print('*******不需要过滤********') # print(dl[0] + ' ' + dl[-1]) except Exception as ex: print('查询失败:' + l) print(ex) # 最终排序方式-list 字典排序 sortList = sorted(dirDateList, key=lambda e: (e.__getitem__('date'), e.__getitem__('dir')), reverse=True) resList = [] for i in range(len(sortList)): if i < 15: continue v = sortList[i]['dir'] # print(sortList[i]) resList.append(v) # 直接按照版本号排序 return resList

3.删除目录(如果目录非空,需要先情况目录下的文件,再进行删除目录操作)

for l in dir_list: # 执行删除 # ftpServer.cwd('/test/test/' + l) # print(ftpServer.pwd()) # 目录下有文件,需要先进性递归删除 # 进入到目录 ftpServer.cwd(l) for i in ftpServer.nlst(): # print(i) ftpServer.delete(i) # 退出目录 ftpServer.cwd('..') ftpServer.rmd('/test/%s/%s' % (cluster, l)) print('删除成功')

判断是否为数字

def is_number(s): try: float(s) return True except ValueError: pass try: import unicodedata unicodedata.numeric(s) return True except (TypeError, ValueError): pass return False



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3